package com.agv.core.dao;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.agv.core.exception.AgvException;
import com.agv.core.objectDomain.AdmCatalogo;
import com.agv.core.objectDomain.InfoAuditoria;
import com.agv.core.objectDomain.MenuSelect;
import com.agv.core.objectDomain.ParamCatalogo;
import com.agv.core.util.ListUtil;

public interface ICatalogosDao {

	public ArrayList<MenuSelect> obtenerMenuSelect(String nbCampoLeyenda,
			String nbCampoId, String tabla) throws AgvException;

	public ListUtil obtenerListaAutocompletar(String nbCampoLeyenda,
			String tabla) throws AgvException;

	public void insertarCatalgoBD(AdmCatalogo admCatalogo, Integer idUsuarioAlta)
			throws AgvException;

	public void actualizaCatalgoBD(AdmCatalogo admCatalogo,
			Integer idUsuarioMod, Integer vlCampoId) throws AgvException;

	public void borrarCatalgoBD(AdmCatalogo admCatalogo, Integer idUsuarioMod,
			Integer vlCampoId) throws AgvException;

	public List<Map<String, String>> buscar(String vlValor, String nbTabla,
			String nbCampo, String nbCampoId,
			ArrayList<ParamCatalogo> parametros) throws AgvException;

	public List<Map<String, String>> busquedaGeneral(String query, Object[] parametros) throws AgvException;

	public Map<String, Integer> buscarModelTabla(String query) throws AgvException;

	public InfoAuditoria consultaInfoAuditoria(String nbTabla,
			String nbCampoId, String vlValorId) throws AgvException;

	public boolean validaDuplicidad(String nbCampo, String vlValor,
			String nbTabla) throws AgvException;

}
